1. Technical Field
The present invention relates in general to a method and system for using a Fibre Channel. More particularly, the present invention relates to a system and method for obtaining a unique identifier from a remote device in a known configuration.
2. Description of the Related Art
Computer systems in general and International Business Machines (IBM) compatible personal computer systems in particular have attained widespread use for providing computer power to many segments of today""s modern society. Computer systems typically include a system processor and associated volatile and non-volatile memory, a display area, input means, and often interfaces, such as a network interface or modem, to other computing devices.
One of the distinguishing characteristics of these systems is the use of a system board to electrically connect these components together. These computing devices are information handling systems which are designed primarily to give independent computing power to a single user, or a group of users in the case of networked computing devices. Personal computing devices are often inexpensively priced for purchase by individuals or businesses. Nonvolatile storage devices such as hard disks, CD-ROM drives and magneto-optical drives are considered to be peripheral devices. Computing devices are often linked to one another using a network, such as a local area network (LAN), wide area network (WAN), or other type of network. Computer systems can also be interconnected using a Fibre Channel network. By linking to other computer systems, a computing device can use resources owned by another computing device. These resources can include files stored on nonvolatile storage devices and resources such as printers and storage area networks (SANs).
Data Storage has become an increasingly important issue for business people and IT professionals. Organizations store records in databases regarding customers, products, competitors, and other records. This storage space becomes expensive when more data is stored. These expenses can be potentially prohibitive for small businesses who must employ people to manage the data, purchase storage equipment and software, and ensure that the data is properly protected from disaster or storage device failure. A solution to this problem comes in the form of an emerging technology called Fibre Channel. Fibre Channel can be used to connect devices to each other, including connecting computer systems to storage devices such as SAN devices.
Fibre Channel is a high speed (100 to 1000 Mbps currently, with speeds increasing quickly over time) medium used for data transfer and storage. It is essentially a serial data channel preferably created over fiber optic cabling. Fibre Channel provides a logical bi-directional, point-to-point connection between a host and a device. Similar to networking technologies using local area network (LAN) or wide area network (WAN) configurations, Fibre Channel also is used to connect PCs, servers, printers, and storage devices. Because Fibre Channel allows the use of fiber optic cabling, connections along a Fibre Channel network makes it possible to transfer data at greater distances. In addition, Fibre Channel makes high-speed data transfers possible. Fibre Channel also provides increased bandwidth over communication channels.
Channels and networks are the two primary ways that data is transferred between devices. Such devices include processors and peripherals such as printers and storage devices. Channels transfer data through switched or direct point to point connections. Channels work by creating a fixed connection between the source and destination devices until the transfer is complete. Channels transfer data at high speeds and are very economical. Networks (i.e., LAN or WAN), on the other hand are collections of nodes such as processors, print devices, and workstations. Connections on networks are typically slower than those made via channels. Also, because networks are software intensive, they are much more expensive due to upgrade and compatibility issues. Channels work best among few devices and connect via predefined addresses. Networks, on the other hand, can handle multiple requests among multiple connections.
Fibre Channel is hybrid of both network and channel methods. Consequently, Fibre Channel is often considered a new I/O (input/output) interface that combines the best of networks and channels. In addition, Fibre Channel systems can be configured in different ways depending on needs of the user, thus providing flexibility in an ever changing systems environment.
Although the ideal medium for Fibre Channel is fiber optic cabling, Fibre Channel can also be used with a variety of cable types such as copper, coaxial cables or Unshielded twisted pair (UTP) wires. Fiber optic cabling is generally preferred on a Fibre Channel system for purposes of increased speed and reliability. Fiber optic cabling works by using photons to transmit digital signals. A laser light connected to a device pulses in binary format (0""s and 1""s). A light emitting diode (LED) codes and transmits the signal from one end of the cable. This signal is subsequently decoded at the other end of the cable by a photo-detector connected to the receiving device. Fiber optic cables do not have the same challenges that are associated with copper cabling. These challenges include attenuation (loss of signal strength) and noise. Fiber optic cables are also more secure than copper cables because crosstalk does not occur with Fiber Optic cables (crosstalk is interference caused by a signal transferring from one circuit to another, as on a telephone line). This insures that data being transferred across a network gets to its destination intact which makes the stored data more reliable for the user.
Fibre Channel technology makes use of classes of service to define messaging types (communication between devices). According to the ANSI standard, a Fibre Channel system""s classes of service can be 1, 2, 3, 4 or 6. These classes make it possible to configure Fibre Channel systems according to the needs of the users.
In a class 1 configuration, there is a dedicated channel between two connection devices. In this configuration, if a host and a device are connected, no other host uses the connection. The advantage of using service class 1 is speed and reliability which is an excellent combination for mass storage use such as in a data library. Class 2 is known as a xe2x80x9cconnectionlessxe2x80x9d service. Class 2 provides a frame-switched link that guarantees delivery of packets from device to device. It also provides packet receipt acknowledgments. In this configuration, bandwidth is shared among several devices, as there is no dedicated link. The third Fibre Channel service class (Class 3) is called xe2x80x9cunacknowledged connectionless servicexe2x80x9d and is often used for messages that do not need to be acknowledged, as there is no acknowledgement with a Class 3 configuration. Class 4 is called xe2x80x9cfraction bandwidth connection orientedxe2x80x9d and allows a device to reserve a portion of the overall bandwidth and use the reserved portion to create a dedicated channel between devices (similar to Class 1, except only part of the available bandwidth is used for the dedicated channel). Class 6 is called xe2x80x9cmulticastxe2x80x9d and is used for one-to-many broadcast communications over the Fibre Channel network. There is an additional Fibre Channel service class called xe2x80x9cintermix,xe2x80x9d which creates a dedicated connection like that of class one, but it also allows class 2 traffic to access the link. This method is efficient and allows for greater bandwidth because more than one connection can access the system at any time.
The Fibre Channel Structure, or architecture, is set forth in the table below. The layers in the table represent a different function that exists within a Fibre channel system.
FIG. 1 shows various topologies that are used with Fibre Channel. These topologies include Loop topology 110, Point-to-Point topology 120, and Fabric topology 100. Within these topologies, several connection types can exist between two Fibre Channel nodes. These include point-to-point connections, cluster connections, and switched connections. Point-to-point connections are typically used for high-speed connections at maximum distances. In this type of connection, no other device accesses the connection while two devices are communicating. Cluster connections connect multiple devices such as workgroup clusters, while switched connections allow more than one simultaneous connection of devices. A transceiver is a device that connects cabling to devices on any network or system and makes data transmission possible between devices.
Fabric topology 100 permits multiple paths between two ports on the Fabric. Loop topology 110, on the other hand, uses one active circuit at a time. Loop and fabric topologies can be combined. In addition, a fabric may contain one or more loops. If a link in a point-to-point topology 120 fails, communication between that pair of ports stops, while communication between other point-to-point connected Ports continues.
Fabric topology 100 includes a switch or a network of switches. These switches create the connections between devices in order for frames to be transported between the connections based on specifying a destination identifier (ID). If the destination ID is determined to be invalid, the fabric rejects the transmission. The function of the Fabric is similar to that of a telephone system, which provides a complete, low-cost connectivity solution. Fibre Channel establishes temporary, direct, and full-bandwidth connections between devices. Fibre Channel makes use of unique address identifiers, similar to telephone numbers, to connect processors to other processors or peripherals at distances currently reaching up to 10 km.
Devices are connected on Fibre Channel systems using various interconnection topologies. Interconnection devices available for use on Fibre Channel are switches, hubs, and bridges. The ability of Fibre Channel to use different interconnect devices makes it scalable depending on user needs. For small Fibre Channel networks, hubs and bridges may be used for connecting devices in a topology called Fiber Channel Arbitrated Loop (FC-AL). As Fibre Channel networks get larger and network demands increase, switching may be implemented. A switched Fibre Channel network is called a xe2x80x9cfabric.xe2x80x9d A fabric is simply the underlying switching architecture used by a Fibre Channel switch. A fabric may contain many loops interconnected with switches.
Multiple protocols can be used in a Fibre Channel network. Once such protocol is the SCSI (Small Computer System Interface). SCSI is a common storage interface for I/O systems. However, SCSI environments have challenges, including limited bandwidth, limited distances, and limited device connections. An advantage of Fibre Channel is increased transmission speed and transmission distance. Data can be sent over longer distances using Fibre Channel because of fiber optic cabling, whereas SCSI only allows data transfers at distances up to 30 meters. Another advantage of Fibre Channel is that it allows millions of device connections, whereas SCSI adapters are usually allowed only eight to sixteen device connections. In addition, the Fibre Channel allows a wide variety of upper-level protocols (ULPs) to run on top of the Fibre Channel interconnect. One ULP that often runs on top of the Fibre Channel interconnect is the SCSI protocol.
Storage Area Networks are increasing in popularity due to high demand by users who need to store large volumes of data. In addition, the cost of magnetic media that comprise Storage Area Networks continues to fall, thus making large data networks both attractive and feasible. The data in a Storage Area Network might be used in data warehouses or decision support systems used by businesses. There are also new applications for Storage Area Networks such as fault tolerant RAID clusters. Storage Area Networks can operate using network interconnect devices such as SCSI, Fibre Channel, HIPPI, or Sonnet. A SAN is a group of storage devices connected via a network of connections to hosts machines across greater distances than are possible on a traditional LAN. Storage Area Networks enable users to store large volumes of data at remote locations. These remote locations, called libraries, make it possible for businesses to store their data, whether for the purpose of creating backups or moving data management away from the primary site. If used for storage, a SAN will typically contain many high capacity Redundant Arrays of Inexpensive Disks (RAID) devises configured for the specific interconnect device used on the SAN. Other types of data that can be stored on SAN devices include databases, video, and streaming media. On a Storage Area Network using a Fibre Channel interconnect, backups can be performed throughout the workday, thereby eliminating timely and costly after hours backups. Storage Area Networks eliminate bottlenecks that make it difficult to access data on traditional networks.
On a Fibre Channel loop or fabric, each device connected to the Fibre Channel interconnect has a node name (Node_Name) and one or more port names (Port_Names). The Node_Name and Port_Names are unique, 64-bit identifies assigned to the specific device, or node, and its ports. Node_Names and Port_Names are assigned so that no two nodes in the world have the same Node_Names and Port_Names. Together, the Node_Name and Port_Names are referred to as a devices World Wide Name (WWN).
In a Fibre Channel network, each device on the network has a dynamically-assigned Fibre Channel address. The address is assigned when the device attaches to the Fibre Channel loop or fabric. Due to the dynamic nature of the Fibre Channel address assignment, the address alone is not sufficient to completely identify a device. For example, device xe2x80x9cAxe2x80x9d can be attached to a fabric and assigned a dynamic address of 0xc3x978. Device xe2x80x9cAxe2x80x9d may subsequently be removed from the fabric and a different device, device xe2x80x9cBxe2x80x9d, may be attached to the fabric and dynamically assigned address 0xc3x978 since that address was relinquished by device xe2x80x9cAxe2x80x9d upon its removal from the fabric. If another device (xe2x80x9cCxe2x80x9d) in the fabric was previously communicating with device xe2x80x9cAxe2x80x9d (perhaps a hard drive) at address 0xc3x978 and later continued communicating with address 0xc3x978 after device xe2x80x9cBxe2x80x9d was inserted at that address, incorrect data could be written to device xe2x80x9cBxe2x80x9d causing data corruption or other errors.
In order to deal with the above-described situation, Fibre Channel networks use the devices"" WWN to uniquely identify the devices on the network. An entity called a xe2x80x9cNameServerxe2x80x9d exists in the Fibre Channel fabric to keep track of WWNs. The NameServer maintains a mapping of dynamically assigned addresses with the devices"" WWNs for all devices on the fabric. When a device is added to, removed from, or even moved to another place on the network (which may also cause a change in the dynamic address), the NameServer is updated with the new WWN to dynamic address mapping. In this manner, referring back to the previous example, if device xe2x80x9cCxe2x80x9d wanted to communicate with device xe2x80x9cAxe2x80x9d, device xe2x80x9cCxe2x80x9d would request the address of device xe2x80x9cAxe2x80x9d from the NameServer. Because device xe2x80x9cAxe2x80x9d was removed from the fabric, device xe2x80x9cCxe2x80x9d would not receive address 0xc3x978 from the NameServer since that address now belongs to device xe2x80x9cB.xe2x80x9d
Unfortunately, the above-described method of identifying devices using the device""s WWN does not always ensure that devices are uniquely identified. For example, devices, such as Fibre Channel to SCSI bridges and storage enclosures create challenges for users of the Fibre Channel network.
One way that SCSI devices, such as disk drives and SAN clusters, are accessed by Fibre Channel connected devices is through a Fibre Channel to SCSI bridge or through a storage enclosure. A Fibre Channel to SCSI bridge, an example being a SAN data gateway, connects a Fibre Channel network on one side of the bridge and to one or more SCSI devices on the other side of the bridge. From the perspective of the Fibre Channel network, the bridge appears to be a single device with its own address and WWN, for example device xe2x80x9cDxe2x80x9d. In reality, however, the bridge (device xe2x80x9cDxe2x80x9d) may have a number of SCSI devices attached to itxe2x80x94for example, SCSI disks xe2x80x9cXxe2x80x9d, xe2x80x9cYxe2x80x9d, and xe2x80x9cZ.xe2x80x9d To devices on the Fibre Channel network, the disks appear as a single device (device xe2x80x9cDxe2x80x9d). If one of the disks is changed, for example disk xe2x80x9cXxe2x80x9d is removed and replaced with disk xe2x80x9cWxe2x80x9d, the change is not noticed by the other devices because the address associated with the Fibre Channel connected device (device xe2x80x9cDxe2x80x9d) has not been changed. The inability of Fibre Channel connected devices, such as device xe2x80x9cAxe2x80x9d, to detect the SCSI disk change can cause problems such as writing data to the wrong disk, leading to disk corruption.
A storage enclosure poses similar challenges for the Fibre Channel network. Many Fibre Channel storage enclosures present a native Fibre Channel connection to the network but actually contain one or more SCSI disks within the enclosure. Similar to the challenge outlined above, if one of the SCSI disks within the enclosure is removed or swapped out, other devices Fibre Channel devices that may be using the SCSI disk are unaware of the change and, therefore, may write to the wrong disk causing data corruption.
A challenge, therefore, with Fibre Channel connected devices is being able to uniquely identify devices connected to the network through a bridge. Consequently, what is needed is a system and method for uniquely identifying and tracking devices connected to a bridge or contained within a storage enclosure.
It has been discovered that a unique identifier, such as a device""s vendor identifier, product identifier, and serial number can be obtained from devices attached to the Fibre Channel network through a bridge or storage enclosure. A command protocol, such as SCSI, is used to communicate with a device attached to a Fibre Channel to SCSI bridge or contained within a storage enclosure (the xe2x80x9cremote devicesxe2x80x9d). A unique identifier, such as a device""s vendor identifier, product identifier, and serial number, stored within the remote device is returned to the Fibre Channel connected device or devices (the xe2x80x9cFC devicexe2x80x9d). The unique identifier received from the remote device is stored by the requesting FC device.
During subsequent communications with the remote device, the unique identifier is again requested by the FC device. If the subsequently received unique identifier matches the previously stored unique identifier, the system is assured that the remote device has not been removed or swapped. On the other hand, if the subsequently received unique identifier does not match the previously stored unique identifier, an error condition occurs preventing the FC device from reading or writing data to the remote device, thus preventing data errors and data corruption.
A remote device is either in a known or unknown configuration. In a known configuration, the location of the remote device""s serial number is predetermined based on the vendor that provided the device (the vendor identifier) and the product model number (product identifier). A remote device is queried using a standard SCSI INQUIRY command to ascertain the remote device""s vendor identifier and product identifier. These pieces of information are used to select a predetermined method for obtaining the remote device""s serial number. For example, a lookup table can be employed with an entry for all known remote devices. If the vendor identifier and/or product identifier is located in the lookup table, then a corresponding method is retrieved. The retrieved method, for example a software routine or module, is used to request the serial number from the known device.
On the other hand, if the configuration is unknown (i.e., the received vendor identifier and/or product identifier are not found in a lookup table), then the SCSI device is examined to identify the device serial number. First, a determination is made through a query of what information pages are supported through the device using a first SCSI INQUIRY command. If a unit serial number page is supported, that page is retrieved using a second SCSI INQUIRY command. If a unit serial number page is not supported, then a determination is made whether a device identification page is supported. If it is supported, it is retrieved using a second SCSI INQUIRY command. If neither a unit serial number page nor a device identification page is supported, a determination is made whether the device supports ASCII Operation/Information pages. If such pages are supported, they are requested using one or more SCSI INQUIRY commands. Finally, if neither unit serial number pages, device identification pages, nor ASCII Operation/Information pages are supported, vendor specific fields are retrieved using a one or more SCSI INQUIRY commands and the serial number, for the remote device is ascertained.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.